package designPattern.AdapterPattern;

import designPattern.AdapterPattern.saver.SDCard;
import designPattern.AdapterPattern.saver.TFCard;
import designPattern.AdapterPattern.saver.impl.SDCardImpl;
import designPattern.AdapterPattern.saver.impl.TFCardImpl;

/**
 * fileName: AdapterPatternDemo
 * description: 适配器模式
 *
 * 适配器模式（Adapter Pattern）是作为两个不兼容的接口之间的桥梁。
 * 这种类型的设计模式属于结构型模式，它结合了两个独立接口的功能。
 *
 * 何时使用：
 * 1、系统需要使用现有的类，而此类的接口不符合系统的需要。
 * 2、想要建立一个可以重复使用的类，用于与一些彼此之间没有太大关联的一些类，
 * 包括一些可能在将来引进的类一起工作，这些源类不一定有一致的接口。
 * 3、通过接口转换，将一个类插入另一个类系中。（
 * 比如老虎和飞禽，现在多了一个飞虎，在不增加实体的需求下，
 * 增加一个适配器，在里面包容一个虎对象，实现飞的接口。）
 *
 * @author lihaogn-main
 * @version 1.0
 * @date 2019/9/18 20:47
 */
public class AdapterPatternDemo {

    public static void main(String[] args) {

        ThinkpadComputer computer = new ThinkpadComputer();
        SDCard sdCard = new SDCardImpl();
        System.out.println(computer.readSD(sdCard));

        System.out.println("===========================");

        TFCard tfCard = new TFCardImpl();
        SDAdapterTF sdAdapterTF = new SDAdapterTF(tfCard);
        System.out.println(computer.readSD(sdAdapterTF));
    }
}
